package com.juidemo.demo;

import javax.swing.*;
import java.awt.*;

import static javax.swing.JFrame.EXIT_ON_CLOSE;

/**
boolean drawImage(Image img, int x, int y, ImageObserver observer)
boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer）

参数：

Image img – 需要绘制的图像。

int x, int y – 图像左上角坐标。

int width, int height – 图像的宽度和高度。

Color bgcolor – 背景色，即图像下面的颜色。如果图像包含透明象素时这会有用，图像将在指定颜色背景下显示。

ImageObserver observer – 一个实现ImageObserver 接口的对象。它将该对象登记为一个图像观察者，因此当图像的任何新信息可见时它被通知。大多组件可以简单的指定this。

组件可以指定this作为图像观察者的原因是Component 类实现了ImageObserver 接口。当图像数据被加载时它的实现调用repaint方法，这通常是你所期望的。

drawImage 方法只要要显示的图像数据已经加载完就返回。如果你要确保drawImage只绘制完整的图像，那么你需要跟踪图像的加载。
————————————————
版权声明：本文为CSDN博主「想去的远方」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/qq_42185999/article/details/88375505
 */
public class DrawImageDemo extends JFrame {
    public DrawImageDemo() {
        setSize(700, 700);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
    }

    public void paint(Graphics g) {
        Image img = Toolkit.getDefaultToolkit().getImage("E:\\pipeline\\sougou\\美女\\0296.jpg");
        g.drawImage(img, 100, 100, 500, 500, Color.LIGHT_GRAY, this);
    }

    public static void main(String[] args) {
        new DrawImageDemo().setVisible(true);
    }
}
